package com.mycompany.last_pack;


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import com.mycompany.last_pack.modelo.entidades.LancamentoFisicoDeProduto;
import com.mycompany.last_pack.modelo.entidades.Produto;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Arthur Tavares Bezerra
 */
public class CarregamentoNaMemoria
{
    public static List<Produto> estoque(  )
                                 throws ParseException
    {
        List<Produto> estoque = new ArrayList<Produto>(  );
        SimpleDateFormat dateFormat = new SimpleDateFormat( "dd/MM/yyyy" );
        List<LancamentoFisicoDeProduto> listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );

        Produto produto = null;
        produto = new Produto( 1,
                               "Produto A",
                               new BigDecimal( 10.4 ),
                               123.0 );
        produto.setLeadTimeFornecedor( 10.0 );

        produto.setGiroTrabalhadoDeEntradasEmDias( 30.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 23.3, 94.0, 19.0, 56.0, 19.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 22.3, 54.0, 71.0, 19.0, 82.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 1.30, 68.0, 19.0, 71.0, 71.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 43.3, 17.0, 35.0, 34.0, 73.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 2.30, 84.0, 18.0, 19.0, 18.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 57.3, 13.0, 15.0, 82.0, 9.02 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 13.4, 34.0, 91.0, 74.0, 17.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 22.3, 31.0, 71.0, 34.0, 4.02 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 34.3, 18.0, 67.0, 23.0, 35.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 12.3, 17.0, 31.0, 78.0, 12.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 65.3, 17.0, 62.0, 31.0, 76.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 31.3, 61.0, 12.0, 72.0, 91.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -79.0, -23.0, -41.0, -50.0, -11.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -4.0, 0.0, -49.0, -45.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -29.0, -83.0, -21.0, -58.0, -79.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -65.0, -34.0, -2.0, -68.0, -64.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -41.0, -88.0, -72.0, -47.0, -38.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -76.0, -39.0, -44.0, -22.0, -25.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -85.0, -30.0, -12.0, -35.0, -40.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -35.0, -11.0, -21.0, -15.0, -18.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -67.0, -1.0, -30.0, -78.0, -99.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -81.0, -75.0, -97.0, -45.0, -14.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -14.0, -54.0, -83.0, -88.0, -38.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -83.0, -24.0, -43.0, -77.0, -89.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

        produto = new Produto( 2,
                               "Produto B",
                               new BigDecimal( 9.4 ),
                               10.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 49.0, 63.0, 10.0, 27.0, 19.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 75.0, 84.0, 50.0, 12.0, 76.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 81.0, 60.0, 72.0, 84.0, 46.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 60.0, 35.0, 0.0, 34.0, 75.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 40.0, 21.0, 43.0, 20.0, 9.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 18.0, 89.0, 18.0, 44.0, 80.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 13.4, 34.0, 91.0, 74.0, 17.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 75.0, 4.0, 17.0, 41.0, 17.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 22.0, 70.0, 36.0, 20.0, 65.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 84.0, 76.0, 53.0, 59.0, 35.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 60.0, 13.0, 9.0, 49.0, 40.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 50.0, 50.0, 96.0, 35.0, 4.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -90.0, -7.0, -36.0, -14.0, -56.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -72.0, -48.0, -40.0, 0.0, -84.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -47.0, -87.0, -84.0, -7.0, -7.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -75.0, -20.0, -72.0, -69.0, -13.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -53.0, -13.0, -88.0, -52.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Venda    s" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -88.0, -95.0, -59.0, -89.0, -64.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -47.0, -59.0, -1.0, -60.0, -20.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -93.0, -27.0, -52.0, -79.0, -69.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -79.0, -34.0, -81.0, -37.0, -53.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -58.0, -2.0, -29.0, 0.0, -68.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -55.0, -75.0, -41.0, -90.0, -96.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -91.0, -81.0, -98.0, -68.0, -80.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

        produto = new Produto( 3,
                               "Produto C",
                               new BigDecimal( 20.4 ),
                               4.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 18.0, 40.0, 74.0, 63.0, 1.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 19.0, 70.0, 46.0, 13.0, 6.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 75.0, 20.0, 15.0, 49.0, 87.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 56.0, 95.0, 16.0, 29.0, 91.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 30.0, 5.0, 83.0, 51.0, 41.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 68.0, 41.0, 85.0, 7.0, 13.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 87.0, 62.0, 78.0, 8.0, 48.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 9.0, 60.0, 88.0, 81.0, 72.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 35.0, 1.0, 91.0, 52.0, 56.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 15.0, 53.0, 53.0, 73.0, 87.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 69.0, 75.0, 53.0, 73.0, 99.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 81.0, 6.0, 50.0, 87.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -80.0, -77.0, -88.0, -98.0, -33.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -69.0, -61.0, -94.0, -64.0, -50.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -75.0, -72.0, -22.0, -38.0, -13.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -5.0, -38.0, -52.0, -15.0, -34.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -48.0, -79.0, -42.0, -36.0, -86.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -42.0, -47.0, -75.0, -22.0, -20.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -2.0, -96.0, -49.0, -32.0, -22.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -27.0, -22.0, -35.0, -11.0, -31.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -40.0, -67.0, -15.0, -65.0, -22.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -90.0, -7.0, -70.0, -63.0, -88.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -36.0, -52.0, -80.0, -98.0, -90.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -88.0, -57.0, -73.0, -41.0, -19.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

        produto = new Produto( 4,
                               "Produto D",
                               new BigDecimal( 4.4 ),
                               15.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 19.0, 28.0, 95.0, 57.0, 26.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 45.0, 92.0, 67.0, 24.0, 42.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 7.0, 76.0, 74.0, 41.0, 68.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 16.0, 53.0, 95.0, 12.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 23.0, 5.0, 27.0, 20.0, 40.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 28.0, 29.0, 1.0, 81.0, 72.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 29.0, 49.0, 18.0, 15.0, 36.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 87.0, 85.0, 0.0, 69.0, 91.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 66.0, 41.0, 78.0, 77.0, 3.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 60.0, 50.0, 82.0, 87.0, 73.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 3.0, 99.0, 92.0, 62.0, 40.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 50.0, 63.0, 39.0, 63.0, 47.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -32.0, -4.0, -27.0, -96.0, -8.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -6.0, -2.0, -68.0, -98.0, -18.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -66.0, -78.0, -41.0, -22.0, -85.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -95.0, -43.0, -38.0, -74.0, -15.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -42.0, -21.0, -82.0, -84.0, -45.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -11.0, -85.0, -45.0, -20.0, -72.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -92.0, -91.0, -81.0, -51.0, -48.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -1.0, -64.0, -97.0, -12.0, -38.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -36.0, -39.0, -18.0, -34.0, -79.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -48.0, -90.0, -69.0, -15.0, -64.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -31.0, -28.0, -53.0, -31.0, -71.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -69.0, -73.0, 0.0, -22.0, -76.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

        produto = new Produto( 5,
                               "Produto E",
                               new BigDecimal( 40.5 ),
                               40.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 9.0, 5.0, 9.0, 3.0, 2.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 5.0, 1.0, 8.0, 1.0, 7.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 1.0, 7.0, 5.0, 0.0, 2.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 5.0, 6.0, 6.0, 2.0, 7.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 9.0, 1.0, 8.0, 6.0, 6.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 3.0, 1.0, 9.0, 6.0, 5.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 2.0, 2.0, 2.0, 8.0, 7.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 3.0, 1.0, 2.0, 7.0, 5.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 4.0, 1.0, 3.0, 9.0, 6.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 2.0, 9.0, 1.0, 1.0, 3.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 5.0, 6.0, 6.0, 8.0, 5.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 3.0, 8.0, 3.0, 0.0, 1.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -8.0, -6.0, -5.0, -6.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -3.0, -5.0, -2.0, -5.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -4.0, -8.0, -7.0, -9.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, -4.0, -3.0, -7.0, -4.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -1.0, -4.0, -7.0, 0.0, -4.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -9.0, -9.0, -4.0, -5.0, -1.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -9.0, -3.0, -2.0, -4.0, -8.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, 0.0, -4.0, -9.0, -3.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -2.0, -5.0, -5.0, 0.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -2.0, -9.0, -6.0, -8.0, -2.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -5.0, -1.0, -6.0, -3.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, -7.0, 0.0, -7.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

        produto = new Produto( 6,
                               "Produto F",
                               new BigDecimal( 60.5 ),
                               20.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 6.0, 8.0, 2.0, 2.0, 6.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 3.0, 6.0, 4.0, 5.0, 1.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 0.0, 1.0, 3.0, 2.0, 8.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 5.0, 5.0, 3.0, 6.0, 1.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 9.0, 4.0, 4.0, 9.0, 3.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 4.0, 0.0, 6.0, 9.0, 6.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 4.0, 3.0, 0.0, 1.0, 3.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 3.0, 2.0, 9.0, 2.0, 5.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 8.0, 0.0, 3.0, 1.0, 9.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 0.0, 7.0, 3.0, 9.0, 5.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 6.0, 4.0, 5.0, 1.0, 5.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 2.0, 8.0, 1.0, 9.0, 8.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -8.0, -6.0, -5.0, -6.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -3.0, -5.0, -2.0, -5.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -4.0, -8.0, -7.0, -9.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, -4.0, -3.0, -7.0, -4.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -1.0, -4.0, -7.0, 0.0, -4.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -9.0, -9.0, -4.0, -5.0, -1.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -9.0, -3.0, -2.0, -4.0, -8.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, 0.0, -4.0, -9.0, -3.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -2.0, -5.0, -5.0, 0.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -2.0, -9.0, -6.0, -8.0, -2.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -5.0, -1.0, -6.0, -3.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, -7.0, 0.0, -7.0, 0.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

        produto = new Produto( 7,
                               "Produto G",
                               new BigDecimal( 22.4 ),
                               15.0 );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 29.0, 75.0, 35.0, 81.0, 74.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 72.0, 54.0, 90.0, 78.0, 41.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 45.0, 41.0, 83.0, 21.0, 20.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 12.0, 51.0, 29.0, 16.0, 43.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 88.0, 4.0, 93.0, 38.0, 3.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 82.0, 12.0, 1.0, 81.0, 20.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 82.0, 10.0, 81.0, 77.0, 91.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 72.0, 58.0, 59.0, 49.0, 55.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 17.0, 8.0, 41.0, 66.0, 31.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 28.0, 58.0, 72.0, 28.0, 25.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 12.0, 62.0, 35.0, 47.0, 59.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Entradas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 61.0, 96.0, 11.0, 46.0, 42.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Entradas" ) );

        listLancamentos.addAll( adicionarLancamentos( new Double[] { -9.0, -2.0, -5.0, -1.0, -7.0 },
                                                      1,
                                                      dateFormat.parse( "10/01/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 0.0, -9.0, -6.0, -3.0, -5.0 },
                                                      1,
                                                      dateFormat.parse( "10/02/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 0.0, -4.0, -4.0, -9.0, -7.0 },
                                                      1,
                                                      dateFormat.parse( "10/03/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -3.0, -9.0, -2.0, -1.0, -1.0 },
                                                      1,
                                                      dateFormat.parse( "10/04/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -5.0, -6.0, -2.0, -6.0, -5.0 },
                                                      1,
                                                      dateFormat.parse( "10/05/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { 0.0, -7.0, -3.0, -9.0, -3.0 },
                                                      1,
                                                      dateFormat.parse( "10/06/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -4.0, -9.0, -3.0, -1.0, -3.0 },
                                                      1,
                                                      dateFormat.parse( "10/07/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -1.0, -4.0, -1.0, -3.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/08/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -3.0, -2.0, -8.0, -8.0, -3.0 },
                                                      1,
                                                      dateFormat.parse( "10/09/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -9.0, -3.0, -9.0, -2.0, -9.0 },
                                                      1,
                                                      dateFormat.parse( "10/10/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -7.0, -6.0, -4.0, -9.0, -6.0 },
                                                      1,
                                                      dateFormat.parse( "10/11/2011" ),
                                                      "Vendas" ) );
        listLancamentos.addAll( adicionarLancamentos( new Double[] { -1.0, -8.0, -1.0, -8.0, -7.0 },
                                                      1,
                                                      dateFormat.parse( "10/12/2011" ),
                                                      "Vendas" ) );

        produto.setLancamentos( listLancamentos );
        listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        estoque.add( produto );

//        for (Produto p1 : estoque) {
//            System.out.println("Produto: " + p1.toString());
//            System.out.println(p1.getSaldoDoEstoqueFisico(dateFormat.parse("01/01/2011"), dateFormat.parse("10/12/2012")));
//        }
        return estoque;
    }

    private static List<LancamentoFisicoDeProduto> adicionarLancamentos( Double[] arrayLancamentos, int idProduto,
                                                                         Date data, String motivo )
    {
        List<LancamentoFisicoDeProduto> listLancamentos = new ArrayList<LancamentoFisicoDeProduto>(  );
        LancamentoFisicoDeProduto lancamentoFisicoDeProduto = null;

        for ( int i = 0; i < arrayLancamentos.length; i++ )
        {
            lancamentoFisicoDeProduto = new LancamentoFisicoDeProduto( i + 1, idProduto, arrayLancamentos[i], motivo,
                                                                       data );
            listLancamentos.add( lancamentoFisicoDeProduto );
        }

        return listLancamentos;
    }
}
